package com.viknix.threadpool.manager.client.spi;

import java.util.concurrent.RejectedExecutionHandler;

/**
 * @Author: Dongqi
 * @Date: 2021/10/27 14:41
 * @Version 1.0
 * @Description: 自定义拒绝策略接口
 */
public interface CustomRejectedHandler {

    /**
     * 获取拒绝策略的类型：注意不要和已经存在的阻塞队列类型重复
     * {@link com.viknix.threadpool.manager.client.enums.RejectedTypeEnum}
     *
     * @return 拒绝策略code
     */
    Integer getCode();

    /**
     * 获取拒绝策略的名称
     *
     * @return 拒绝策略名称
     */
    String getName();

    /**
     * 获取自定义的拒绝策略
     *
     * @return 自定义的拒绝策略
     */
    RejectedExecutionHandler generateRejected();
}
